package class17_Graph.graph;

import java.util.HashMap;
import java.util.HashSet;

public class Graph {
    public HashMap<Integer, Node> nodes;
    public HashSet<Edge> edges;

    public Graph() {
        nodes = new HashMap<>();
        edges = new HashSet<>();
    }

    public Graph(int[][] am) {
        nodes = new HashMap<>();
        edges = new HashSet<>();

        for(int i=0;i<am.length;i++){
            nodes.put(i,new Node(i));
        }

        for(int i=0; i<am.length; i++){
            for(int j=0; j<am[0].length; j++){
                if(am[i][j]!=0){
                    Edge edge = new Edge(am[i][j],nodes.get(i),nodes.get(j));
                    edges.add(edge);
                    nodes.get(i).outEdges.add(edge);
                    nodes.get(i).out++;
                    nodes.get(j).inEdges.add(edge);
                    nodes.get(j).in++;
                    nodes.get(i).nexts.add(nodes.get(j));
                }
            }
        }
    }
}